hmac 模块 和 hashlib 模块一样提供了常见的摘要算法,如 MD5,SHA1 等等。

hmac 模块默认就要进行加盐

hmac 模块没有hashlib 模块中的 update,所以不能进行多次 update

1. hmac.new(密钥, 需要加密的内容, digestmod='MD5')

  • 密钥在这里可以理解为就是盐
  • 密钥 和 需要加密的内容都必须是bytes类型
  • digestmod -> 使用那种加密方式

import hmac

h = hmac.new('盐'.encode('utf-8'), b'123', digestmod='MD5')  # 密钥 要加密的信息 加密方式

h_digest = h.digest()  # 获取加密后的值,以二进制的形式返回,且是bytes类型

print(h_digest)  # b':\xc7\x00\n\x1c&\x14c\xcc\xc1Nr)&H '

hig_digest = h.hexdigest()  # 获取加密后的值,以十六进制的形式返回

print(hig_digest)  # 3ac7000a1c261463ccc14e7229264820

2. hmac.compare_digest(md51, md52) -> 判断两个加密后的md5值是否一样

import hmac
import hashlib

h = hmac.new('盐'.encode('utf-8'), b'123', digestmod='MD5')
h_digest = h.digest()
hig_digest = h.hexdigest()

h1 = hmac.new('盐'.encode('utf-8'), b'123', digestmod='MD5')
h_digest1 = h1.digest()
hig_digest1 = h1.hexdigest()

is_same = hmac.compare_digest(hig_digest, hig_digest1)  # 比较两个加密后的值是否一致
print(is_same) # true